This invention relates to facilitating a user""s ability to view content on a display monitor, e.g., while the user is navigating through an electronic document.
The term xe2x80x9ccontentxe2x80x9d encompasses a wide variety of information including text, images, web pages, multimedia presentation, virtual worlds, interactive sessions, or any combination thereof. Computers are widely used to display and manipulate such content.
The essential elements of a computer are a processor for executing instructions and a memory. FIG. 1 shows one type of computer, a programmable processing system (system) 101. The system 101 includes a processor 102, a random access memory (RAM) 103, a program memory 104 (for example, a writable read-only memory (ROM) such as a flash ROM), and an input/output (I/O) controller 105 coupled by a processor (CPU) bus 106. The system 101 can be preprogrammed, in ROM, for example, or it can be programmed (and reprogrammed) by loading a program from another source (for example, from a floppy disk, a CD-ROM, or from another computer via a communication link). A computer generally also can receive programs and data from a storage medium such as an internal disk (not shown) or a removable disk 107.
The I/O controller 105 is coupled by means of an I/O bus 108 to an I/O interface 109. The I/O interface 109 receives and transmits data (e.g., stills, pictures, movies, and animations for importing into a composition) in analog or digital form over communication links (not shown) such as a serial link, local area network, wireless link, and parallel link. The I/O interface 109 also may be connected to a removable disk drive 111 for reading and writing data to/from removable disk 107. Also coupled to the I/O bus 106 are a display 112 and a keyboard 113. Alternatively, separate connections (separate buses) can be used for the I/O interface 109, display 112 and keyboard 113.
As shown in FIG. 2, a user of a computer system can access content either stored locally at the user""s own client system 202 (for example, a personal or laptop computer) or remotely (using a modem 204 and a telephone line 206 or, alternatively, using TCP/IP over a direct communications link 207) at one or more server systems 200. An example of a server system is a host computer that provides subscribers with online computer services such as e-mail, e-commerce, chat rooms, Internet access, electronic newspapers and magazines, etc. Users of a host computer""s online services typically communicate with one or more central servers systems 200 through client software executing on their respective client systems 202.
Content, whether locally or remotely stored, is typically accessed using an application program specially designed to process a particular type of content. These applications typically allow the user to manipulate the content, including the capability to display, edit, or both. Applications used primarily to view content include xe2x80x9cbrowsers,xe2x80x9d xe2x80x9creaders,xe2x80x9d and xe2x80x9cviewers.xe2x80x9d Some applications have the ability to process many different types of content simultaneously, while others have the ability to use xe2x80x9cplug-inxe2x80x9d or xe2x80x9chelperxe2x80x9d applications allowing the user to add support for additional content types. Microsoft""s Internet Explorer is an example of a browser application that displays many different types of content and supports plug-ins. FIG. 3 shows a screenshot of a web page 301 displayed by the Internet Explorer browser.
Many computer systems provide a graphical user interface (GUI) that includes windows to allow applications to display portions of content. Multiple windows can be displayed on a display monitor at any time. FIG. 4 shows a typical windowed GUI 401 with two windows 402 currently displayed. Each window 402 is a separate viewing area on the computer display screen in a system that allows multiple viewing areas. Windows are managed by a windows manager that allows windows to be stretched on any side, minimized, maximized, and closed using graphical controls 404.
Frequently, a body of content (for example, a word processing document or an image file) may be too large to display in its entirety on a display monitor at a usable size. Other times, the display monitor may be physically large enough to display all of the content at once, but a user has chosen to display the content in a magnified state or in a window that is only a fraction of the size of the display monitor. In both cases, application programs typically display only a portion, or subset, of the content and allow the user to navigate incrementally through the content one portion at a time. These content portions may overlap, so that a newly displayed portion contains some of the previously displayed portion. Or, the successively displayed portions may be disjoint, such that none of the old portion is displayed with the new portion. As used herein, an xe2x80x9coldxe2x80x9d content portion refers to a previously displayed portion of the content and a xe2x80x9cnewxe2x80x9d content portion corresponds to a subsequently displayed portion of the content.
Windowed GUI environments ordinarily handle the processing involved with displaying only a portion of the underlying content. In non-windowed environments, applications must provide their own means for displaying portions of their content. For example, text-terminal based programs, such as the xe2x80x9clessxe2x80x9d and xe2x80x9cmorexe2x80x9d text viewers provided with Unix operating systems, can be used to display text documents a single page at a time.
In order to allow users to navigate through the content, applications provide a variety of techniques to enable users to indicate which new portion of content to display. For example, in a typical word processing context, the application, in response to user input, can xe2x80x9cscrollxe2x80x9d the document by showing the old content portion moving off the page in a smooth, continuous motion as a new adjacent content portion moves onto the page. Another method of displaying new portions of content is by using xe2x80x9cpaging.xe2x80x9d In this case, the application simply jumps to and displays the new portion of content, replacing the old portion on the display monitor without any intermediate display states. Scrolling and paging can occur in any direction, but typically involve moving to a portion of content in a horizontal or vertical direction to display a new portion of content.
Several navigation mechanisms involve the use of the keyboard. For example, the arrow keys typically indicate that the application should display a portion of content overlapping the currently displayed portion of content and located in the direction indicated by the particular arrow selected. Similarly, the xe2x80x9cPage Upxe2x80x9d and xe2x80x9cPage Downxe2x80x9d keys indicate that the application should display a portion of content adjacent to the current portion and located in the indicated direction (i.e., up or down).
Other navigation mechanisms are graphical in nature. Known as xe2x80x9cwidgets,xe2x80x9d these mechanisms are user interface controls that can be manipulated by the user, typically using a cursor controlled by a mouse or touchpad. A widget is an element of a graphical user interface (GUI) that displays information or provides a specific way for a user to interact with the operating system and application programs. Widgets include icons, pull-down menus, buttons, selection boxes, progress indicators, on-off checkboxes, scrollbars, windows, window edges (for resizing the window), toggle buttons, forms, and many other devices for displaying information and for inviting, accepting, and responding to user actions.
In a graphical user interface environment, different ways exist to select a portion of content to be displayed by an application. For example, a scrollbar is a graphical widget that can be used to navigate in a single dimension through content, typically in the vertical or horizontal dimension. FIG. 5 shows a typical vertical scrollbar 501 attached to a window 502 with text content 503. The current portion of text displayed is represented by xe2x80x9cbubblexe2x80x9d or xe2x80x9cthumbxe2x80x9d 504. The location of the thumb relative to the entire scrollbar is proportional to the location of the visible portion of content relative to the entire body of content. The height HT of the thumb 504 represents a graphical indication of the amount of content that is visible relative to the entire body of content, which is graphically represented by the height HC of the entire scrollbar 501. To navigate to a different portion of text, the user can select the thumb 504 with the cursor and drag it up or down. In addition, the arrows 505 can be used to move a short distance, such as one line, up or down. Clicking in the scrollbar 501 above or below the thumb 504 typically causes the window to display a new page full of content, either above or below the current location.
Another technique for graphical navigation is xe2x80x9cdirect manipulationxe2x80x9d by using a cursor (typically an open hand symbol) to select a first location within the content, dragging that location to another position on the screen, and displaying the new portion of content made visible by the repositioning. A similar approach frequently is used to navigate in electronic mapping applications where the user selects a point on the map as the new xe2x80x9ccenterxe2x80x9d and the application displays the portion of content surrounding that new center point.
Commands, whether selected from a menu or entered using a keyboard, also may be used to navigate through a document. For example, the xe2x80x9cfindxe2x80x9d command available in many word processing applications makes it possible for a user to navigate through a document by viewing the content portions surrounding occurrences of a specified text string. Other commands may allow users to navigate in other ways. Commands also may be invoked by the user through the use of keystrokes, menus, graphical widgets, macros, or a command line.
FIG. 6 shows a content window 601 displayed by Adobe Acrobat Reader, a portable document format (PDF) reader application. In a previous state (not shown), a portion of text 602 from the middle of a text document had been displayed. The user then selected the xe2x80x9cPage Downxe2x80x9d key on the keyboard, and a new portion of text 603 immediately following the old portion 602 was displayed, as shown in FIG. 6 such that at least part of the old and new portions overlap. Because the new portion of text overlaps the old portion, the user is presented with the problem of finding the point 604 to commence reading following the change of view (i.e., where the new text begins and the old text ends). This problem occurs whenever a user scrolls or pages content and the new content to be displayed includes some of the old content.
Generally, Acrobat Reader and other applications display the last line of text 605 of the old portion of text at the top of the new portion. This approach has been used in many applications, including the Unix applications xe2x80x9clessxe2x80x9d and xe2x80x9cmore.xe2x80x9d However, the various implementations often are inconsistent with each other regarding the amount of the first portion to display with the second portion, thereby forcing users to search for the boundary of the new content. Moreover, depending on factors such as window size, document size and current viewing position, it may not be feasible to display the last line of the old portion at the top of the new portion.
The present inventors recognized that it would be advantageous to allow users to quickly differentiate between old and new portions of content when the user navigates through content or whenever the viewing position otherwise changes. Consequently, the present inventors developed a new technique that allows applications to use a visual indication within the content display to differentiate between the old and new content.
In general, in one aspect, a computer-implemented method of facilitating a user""s viewing of content on a display monitor includes displaying a first portion of a body of content, and receiving a request to display a second portion of content. The second portion of content at least partially differs from the first content portion. The method includes displaying the second content portion including a visual indication within or adjacent to the displayed content distinguishing the first and second content portions.
Implementations of the computer-implemented method may include various combinations of the following features. The body of content may include text displayed by a word processor, or text displayed by a document viewer. Alternatively or in addition, the body of content may include graphic images displayed by a graphics editor or viewer, or multimedia content. The body of content may include an electronic document. The electronic document may include a portable document format (PDF) file. Furthermore, the body of content may be stored locally at the user""s own client system, or stored remotely at one or more server systems.
The request may include a command from a user input device, or a command from a graphical widget displayed in a graphical user interface. The graphical user interface may facilitate user interaction with an operating system and application programs. The graphical widget may include one or more of icons, pull-down menus, buttons, selection boxes, progress indicators, on-off checkboxes, scrollbars, windows, window edges, toggle buttons, and forms. The graphical widget may include an element that displays information and invites, accepts, and responds to user actions. The command may cause a scrolling operation to occur in one or more directions.
The request may include a direct manipulation using a cursor to select content and drag content across the display. The request may include a command from a software tool that may be selected from a menu or entered using a keyboard. Likewise, the request may include a command that causes a resizing operation of a window containing the content.
The second portion of content may partially overlap the first content portion. Or, the second portion of content may be disjoint and adjacent or separated from the first content portion. The second portion of content may be offset from the first content portion in a vertical direction, a horizontal direction, or a combination of both directions.
The visual indication may include an artifact displayed on or adjacent to the content. The artifact indicates a boundary between the first portion of content and the second portion of content. The artifact may include a cursor, a bookmark, an arrow, a line, or any combination thereof. The artifact may alternatively include a graphical icon or text. The artifact may indicate a direction of the second portion of content to the first portion of content, or a distance from the second to the first portion of content.
The artifact may take a predetermined or user-specified action. For example, the action taken by the artifact may return the user to the first portion of content. The artifact may include an animation that conveys information about the artifact. The characteristics of the artifact may be changeable by the user. Such characteristics may include an artifact""s size, shape, brightness, and hue.
The visual indication may include a modification of a background associated with the first portion of content, the second portion of content, or both portions of content. The background modification may include a modification of tint of the background. The background modification may include altering a brightness, hue, pattern, or any combination thereof of the background. The background of the first portion of content may be altered in a different manner from the background of the second portion of content.
The visual indication may include a modification to a foreground of the first portion of content, the second portion of content, or both portions of content. The foreground modification may include an alteration in brightness, hue pattern, font characteristics, graphics characteristics, or any combination thereof.
The visual indication may distinguish one or more boundaries of the first content portion. Moreover, the visual indication may distinguish a direction or a distance of the first content portion relative to the second content portion.
The second portion of content may include a modification of the body of content. The modification of the body of content may include a cut-and-paste operation, an alteration of the appearance of the content or of the window in which the content is displayed, or an addition or deletion of newly presented content to the body of content.
In general, in a second aspect, a computer-implemented method of facilitating a user""s viewing of content on a display monitor includes displaying a first portion of a body of content. The method includes receiving a request to display a distinct second portion of the body of content simultaneously with at least part of the first portion of the body of content. In response to a request, the second portion, the part of the first portion, and an indication within or adjacent to the displayed content are displayed simultaneously. The indication visually distinguishes the second portion from the first portion and is supplemental to and not part of the content.
One or more of the following advantages may be provided. The systems and techniques described here may enable a user to read or edit a document on the screen more quickly and easily by providing continuity while the user scrolls, pages, or otherwise navigates through a body of content. Users can locate a particular content portion more quickly by being able to identify what content has already been displayed on the screen. As a result, interruptions to a user""s train of thought are minimized.
The systems and techniques described here provide a robust visual indication that improves a user""s ability to locate and comprehend desired portions of a body of content quickly and efficiently. The flexibility of the techniques encourages its application across a wide variety of applications and types of content. Further, application developers will find the technique simple to implement, thus reducing the likelihood of software application problems.
In addition, the systems and techniques described here will have benefits for content navigation involving more than a single user. Viewers who are not controlling the navigation will be able to identify the direction and magnitude of each move through a body of content even though they do not know what commands and controls might have been used. For example, multiple users engaged in a single browsing session over a network, such as a local area network within an office or the Internet, may be viewing a body of content together, with a single user controlling the navigation. In this case, the techniques described here will provide the non-controlling users with information that will help them locate their position in a body of content. For example, if the controller scrolls the document down, the other users will be able to see that the previously viewed content moved to the top of the screen and is shaded, and that the new content is not shaded.
Moreover, the systems and techniques described here provide the user with immediate feedback indicating what percentage of the screen changes when a scroll operation occurs. For example, if the user scrolls using a mechanism such as a mouse click on a control icon, and each time the user clicks on the control icon, the screen changes by, for example, a quarter, this provides the user with information about that control icon. Therefore, the user can predict how much of the screen will scroll when that control icon is clicked, in this example, a quarter of the screen scrolls.
The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will become apparent from the description and drawings, and from the claims.